//
//  GoodsOrderStatus.swift
//  smosky
//
//  Created by zhuxietong on 2018/7/9.
//  Copyright © 2018年 tianrun. All rights reserved.
//

import Foundation
import AsyncDisplayKit
import soapp

extension Goods{
    public enum OrderListFilter{
        case all//全部
        case status(GoodsOrderStatus,name:String)
        case after//售后
        
//        public static var filters:[OrderListFilter] = [.all,.status(.待支付, name: "待支付"),.status(.待发货, name: "待发货"),.status(.已发货, name: "待收货"),.status(.已收货, name: "待评价"),.after];
//        
        public var name:String{
            get{
                switch self {
                case .all:
                    return "全部".loc
                case .after:
                    return "售后".loc
                case .status(_, name: let name):
                    return name
                }
            }
        }
    }
}




public enum GoodsOrderStatus:String{
    
    public var statusColor:UIColor{
        switch self {
        case .已取消,.支付超时:
            return UIColor(shex: "#999")
        default:
            return ___shop.tint
        }
    }
    
    case all = ""
    //    case 已提交 = "1"
    //    case 已取消 = "2"
    //    case 待支付 = "3"
    //    case 支付超时 = "4"
    //    case 已支付 = "5"//待发货
    //    case 已发货 = "6"//待收货
    //    case 已收货 = "7"
    //    case 待评价 = "8"
    //    case 退款 = "9"
    //    case 订单已完成 = "10"
    case 已取消 = "10"
    case 待支付 = "21"
    case 支付超时 = "22"
    
    case 待发货 = "30"
    case 拼团中 = "32"
    case 拼团失败 = "31"
    
    case 已发货 = "40"
    
    case 已收货 = "50"
    case 已评价 = "51"
    case 评价已关闭 = "52"
    
    //    case 换货申请中 = "90"
    //    case 换货申请驳回 = "91"
    //    case 客户已取消换货 = "92"
    //    case 换货申请已通过 = "93"
    //    case 等待商家重新发货 = "94"
    //    case 等待客户收货 = "95"
    //    case 已完成换货 = "96"
    //
    //    case 退款申请中 = "70"
    //    case 退款申请通过 = "73"
    //
    //    case 退款申请驳回 = "71"
    //    case 客户已取消退款 = "72"
    //    case 已完成退款 = "76"
    //
    //    case 退货申请中 = "80"
    //    case 退货申请驳回 = "81"
    //    case 客户已取消退货 = "82"
    //    case 退货申请已通过 = "83"
    //    case 退货已完成 = "86"
    
    var showName:NSAttributedString{
        get{
            let shex = ___shop.tint
            let nhex = UIColor(shex: "#666")
            let chex = UIColor(shex: "#999")
            
            switch self {
            case .已取消:
                return "已取消".loc.ui.font12.color(color: chex).astring
            case .待支付:
                return "待支付".loc.ui.font12.color(color: shex).astring
            case .支付超时:
                return "支付超时".loc.ui.font12.color(color: chex).astring
            case .待发货:
                return "待发货".loc.ui.font12.color(color: nhex).astring
            case .已发货:
                return "已发货".loc.ui.font12.color(color: shex).astring
            case .已收货:
                return "已收货".loc.ui.font12.color(color: shex).astring
            case .评价已关闭:
                return "交易完成".loc.ui.font12.color(color: shex).astring
            case .拼团中:
                return "已支付，正在组团中".loc.ui.font12.color(color: shex).astring
            case .拼团失败:
                return "拼团失败".loc.ui.font12.color(color: shex).astring
                //            case .换货申请中:
                //                 return "换货申请中".ui.font12.color(hex: shex).astring
                //            case .换货申请驳回:
                //                 return "换货申请驳回".ui.font12.color(hex: shex).astring
                //            case .换货申请已通过:
                //                 return "换货申请已通过".ui.font12.color(hex: shex).astring
                //            case .等待商家重新发货:
                //                 return "等待商家重新发货".ui.font12.color(hex: shex).astring
                //            case .等待客户收货:
                //                 return "等待客户收货".ui.font12.color(hex: shex).astring
                //            case .已完成换货:
                //                 return "已完成换货".ui.font12.color(hex: shex).astring
                //            case .退货申请中:
                //                 return "退货申请中".ui.font12.color(hex: shex).astring
                //            case .退货申请驳回:
                //                 return "退货申请驳回".ui.font12.color(hex: shex).astring
                //            case .退款申请中,.退款申请通过://退款--------------------------------------------------------------------
                //                return "退款中".ui.font12.color(hex: shex).astring
                //            case .已完成退款:
                //                return "已退款".ui.font12.color(hex: shex).astring
                //            case .退款申请驳回:
                //                return "退款申请遭驳回".ui.font12.color(hex: shex).astring
                //
                //            case .客户已取消退货:
                //                 return "客户已取消退货".ui.font12.color(hex: shex).astring
                //            case .退货申请已通过:
                //                 return "退货申请已通过".ui.font12.color(hex: shex).astring
                //            case .退货已完成:
            //                 return "退货已完成".ui.font12.color(hex: shex).astring
            default:
                return "".ui.font12.color(color: shex).astring
            }
        }
        
    }
    
    func barInfo(obj:NSMutableDictionary)->(name:String,color:UIColor,icon:String,info:String,bt:String){
        return OrderScheme.default.barInfo(status: self, obj: obj)
        
//        let default_icon = "wddd_pingjia"
//
//
//        let able_hex = ___shop.hex1
//        let disable_hex = "#aaa"
//        let verification = GoodsVerification(detail: obj)
//        if verification.showVerification{
//            switch verification.status{
//            case .unget:
//                return ("等待取货",able_hex,default_icon,"","")
//            case .unuse:
//                return ("等待使用",able_hex,default_icon,"","查看消费码")
//            case .timeout:
//                 return ("已过期",disable_hex,default_icon,"","")
//            case .used:
//                return ("已使用",able_hex,default_icon,"","查看消费码")
//            case .unkown:
//                break
//            }
//        }
//
//
//        switch self {
//        case .已取消:
//            return ("\(OrderScheme.default.name)已取消",disable_hex,default_icon,"","")
//        case .待支付:
//            return ("待支付",able_hex,default_icon,"","立即付款")
//        case .支付超时:
//            return ("支付超时",disable_hex,default_icon,"","")
//        case .待发货:
//            return ("等待卖家发货",able_hex,default_icon,"","")
//        case .已发货:
//            return ("待收货",able_hex,default_icon,"","确认收货")
//        case .已收货:
//            return ("已收货",able_hex,default_icon,"您已签收购买的商品","去评价")
//        case .评价已关闭:
//            return ("\(OrderScheme.default.name)已完成",able_hex,default_icon,"","")
//        case .拼团中:
//            return ("已支付，正在组团中",able_hex,default_icon,"","")
//        case .拼团失败:
//            return ("拼团失败",disable_hex,default_icon,"","")
//        default:
//            return ("订单已失效",able_hex,default_icon,"","")
//        }
    }
    
    
    
    var log_icon:String{
        get{
            var name = "me_1dingdan"
            switch self {
            case .已取消:
                name = "yiquxiao"
            case .待支付:
                name = "daifukuan"
            case .待发货:
                name = "dashouhuo"
            case .已发货:
                name = "dafahuo"
            case .已收货:
                name = "daipingjia"
            case .已评价:
                name = "yipingjia"
            default:
                break
            }
            return name
        }
    }
    
    
    var listCtr:GoodsOrderListCtr{
        get{
            let ctr = GoodsOrderListCtr()
            ctr.filterStatus = self
            return ctr
        }
    }
    
//    static func statusWith(name:String)->GoodsOrderStatus{
//        switch name {
//        case "全部":
//            return .all
//        case "待支付":
//            return .待支付
//        case "待发货":
//            return .待发货
//        case "待收货":
//            return .已发货
//        case "待评价":
//            return .已收货
//        default:
//            return .all
//        }
//    }
//    var filterName:String{
//        switch self {
//        case .all:
//            return "全部"
//
//        case .待支付:
//            return "待支付"
//        case .待发货:
//            return "待发货"
//        case .已发货:
//            return "已发货"
//        case .已收货:
//            return "待评价"
//        default:
//            return "全部"
//        }
//    }
    
    public var filterValue:String{
        switch self {
        case .待支付:
            return "0"
        case .待发货:
            return "1"
        case .已发货:
            return "2"
        case .已收货:
            return "7"
        default:
            return ""
        }
    }
    
    
    public var actionButtons:(ASButtonStyle,ASButtonStyle){
        get{
            return OrderScheme.default.actionButtons(status: self)
           
        }
    }
}

extension GoodsOrderStatus{
    func doAction(with btName:String,cell:JoCellNode?,at controller:UIViewController?,order:NSMutableDictionary) {
        OrderScheme.default.doAction(with: btName, cell: cell, at: controller, order: order)

    }
}


